The RTM should be installed on a dedicated machine, because it is a time-sensitive application and it is one point of service for many network applications.
If you instead choose to install the RTM on a machine that is shared with other applications (including VBVoice applications), you run the risk of losing the RTM connection when the CPU usage exceeds 100% for more than 30 seconds. This behaviour is true in both design and runtime modes.
When the VBVoice development toolkit is in Evaluation mode, only 15 toolkit controls are allowed to be loaded in the same VB project. If you load a project that has more than 15 controls without having the properly required licenses, VBVoicewill switch into Evaluation Mode and the project will be partially loaded.
However, saving this partially loaded project results in dropped controls and a corrupt project that is hard to fix because the lost controls' property values, connections, and positions in VBVFrame pages are also lost.
When the VBVFrame is loaded, it defines the mode in which VBVoice will run. If you load a VBVoice project without opening any form and then run with F5 (i.e. start the application in debug mode), the frame will be loaded and if it fails to grab licenses, VBVoice might switch into Evaluation Mode.
recommendations:
Although you are notified when this happens, it is good practice to set the Visual Studio environment options to not automatically save the project when you start an application in debug mode.
Always backup your project before making major changes, because code fragments are always easier to retrieve than visual design components.
Sometimes you may want to start a VBVoice system with zero channels in the LineGroup and then dynamically add channels at runtime using the AddChannel function.
In this scenario, no ASR or TTS engines will be initialized, and only the number of engines equal to the number of channels specified or added to the LineGroup before calling StartSystem will be initialized.
There are two ways to add channels dynamically at runtime.
This method is useful for the developer who wants to specify the channel numbers out of the application and who wants to feed this number to the application.
This method is useful for the developer who wants to build a hardware-independent, dynamic application. The application will detect the number of channels offered by the hardware and will work on them.
Follow these cases as examples.
Set the number of engines in INI to 2.
Set LineGroup channels to nothing.
Before you start the system, call AddChannel on LineGroup for 2 channels.
Call StartSystem.
After the system is started, call AddChannel on LineGroup for another 4 channels.
The two engines will be initialized and will be floating on all 6 voice channels.
You cannot do this! No matter what you try, you will get 2 voice-channels and 2 engines.
With maximum number of engines
Start the system with 1-240 channels set in the LineGroup. This will get you 240 voice channels and 240 engines, if the licenses are available.
With only 4 floating engines
Start the system with 4 channels in the LineGroup; this will initialize 4 engines as well.
Call AddChannel for channels 5 to 240 while trying to catch any runtime error.